import platform

from llama_index.core.tools import FunctionTool, ToolMetadata

from sks.funcall.funcalls import tool_now_time, tool_file_editing, tool_execute_shell, tool_execute_cmd, \
    tool_file_reading


def none_fun():
    return "none"

def get_tools(showAll:bool=False) -> list[FunctionTool]:
    """获取所有工具
    showAll:  只有在初始化时候传入True
    """
    _list=[]
    # _list.append(FunctionTool.from_defaults(tool_now_time))
    # fc=get_current_time_fun_call()
    # ft=FunctionTool(none_fun,metadata=ToolMetadata(name=fc.name,description=fc.description,fn_schema=fc.parameters))
    # _list.append(ft)
    _list.append(FunctionTool.from_defaults(tool_now_time))
    _list.append(FunctionTool.from_defaults(tool_file_editing))
    _list.append(FunctionTool.from_defaults(tool_file_reading))


    if showAll:
        _list.append(FunctionTool.from_defaults(tool_execute_shell))
        _list.append(FunctionTool.from_defaults(tool_execute_cmd))
    else:
        if platform.system() == 'Windows':
            _list.append(FunctionTool.from_defaults(tool_execute_cmd))
        else:
            _list.append(FunctionTool.from_defaults(tool_execute_shell))


    return _list